package org.boot.fast.excel;

import lombok.extern.slf4j.Slf4j;
import org.boot.fast.listener.FastExcelExportListener;
import org.springframework.stereotype.Component;

/**
 * Excel 导出监听器 - 示例实现
 */
@Slf4j
@Component
public class ExcelProcess implements FastExcelExportListener {

    /**
     * 单元格数据处理 - 用于数据翻译
     * @param field 数据列名称
     * @param value 单元格数据
     * @return 处理后的单元格值
     */
    @Override
    public Object cellExportProcess(String field, Object value) {
        log.info("监听到导出的单元格数据: 字段:[{}],值:[{}]", field, value);

        //单元格数据翻译逻辑处理
        if (value == null && field.equals("id")) {
            return "这就是音乐！";
        }

        //返回翻译后的数据
        return value;
    }

    /**
     * 单元格数据错误处理
     * @param field 数据列名称
     * @param value 单元格数据
     * @param rowNum 行号
     * @param columnNum 列号
     * @param throwable 错误信息
     */
    @Override
    public void collExportErrorProcess(String field, Object value, Integer rowNum, Integer columnNum, Throwable throwable) {
        log.error("监听到导出异常: 字段:[{}],值:[{}],行号:[{}],列号:[{}],错误信息:[{}]", field, value, rowNum, columnNum, throwable.getMessage());
        //错误逻辑处理
    }
}
